package cn.iocoder.yudao.module.engine.controller.app.message.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDateTime;
import java.util.List;

import com.alibaba.excel.annotation.*;

@Schema(description = "用户 APP - 对话 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AppMessageRespVO {

    @Schema(description = "唯一自增id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23536")
    @ExcelProperty("唯一自增id")
    private Long messageId;

    @Schema(description = "会话id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17101")
    @ExcelProperty("会话id")
    private Long sessionId;

    @Schema(description = "消息来源", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("消息来源")
    private Integer senderType;

    @Schema(description = "消息用户消息内容", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("用户消息")
    private String userText;

    @Schema(description = "回复消息", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("回复消息")
    private String replyText;

    @Schema(description = "消息类型, 1: 文本/音频, 2: 图片, 3: 视频", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("消息类型, 1: 文本/音频, 2: 图片, 3: 视频")
    private Integer contentType;

    @Schema(description = "音频数据")
    @ExcelProperty("音频数据")
    private List<AudioData> audioData;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @NoArgsConstructor
    @AllArgsConstructor
    @Data
    public static class AudioData {
        private Integer id;
        private String sentence;
        private String url;
    }
}